// starting begin IngameOn ;
   0: CALL_OW 8
// PrepareHero1 ;
   4: CALL 3189 0 0
// PrepareAmerican ;
   8: CALL 297 0 0
// AddComMoveToArea ( PULK_01 , ROZMOWA ) ;
  12: LD_EXP 7
  16: PPUSH
  17: LD_INT 4
  19: PPUSH
  20: CALL_OW 173
// CenterNowOnUnits ( OWChyba ) ;
  24: LD_EXP 6
  28: PPUSH
  29: CALL_OW 87
// end ;
  33: END
// every 0 0$01 trigger IsInArea ( PULK_01 , ROZMOWA ) do
  34: LD_EXP 7
  38: PPUSH
  39: LD_INT 4
  41: PPUSH
  42: CALL_OW 308
  46: IFFALSE 296
  48: GO 50
  50: DISABLE
// begin AddComHold ( PULK_01 ) ;
  51: LD_EXP 7
  55: PPUSH
  56: CALL_OW 200
// Say ( PULK_01 , B1 ) ;
  60: LD_EXP 7
  64: PPUSH
  65: LD_STRING B1
  67: PPUSH
  68: CALL_OW 88
// AddComExitBuilding ( OWChyba ) ;
  72: LD_EXP 6
  76: PPUSH
  77: CALL_OW 182
// AddComHold ( OWChyba ) ;
  81: LD_EXP 6
  85: PPUSH
  86: CALL_OW 200
// AddComTurnUnit ( OWChyba , PULK_01 ) ;
  90: LD_EXP 6
  94: PPUSH
  95: LD_EXP 7
  99: PPUSH
 100: CALL_OW 179
// AddComTurnUnit ( PULK_01 , OWChyba ) ;
 104: LD_EXP 7
 108: PPUSH
 109: LD_EXP 6
 113: PPUSH
 114: CALL_OW 179
// Say ( OWChyba , B2 ) ;
 118: LD_EXP 6
 122: PPUSH
 123: LD_STRING B2
 125: PPUSH
 126: CALL_OW 88
// Say ( PULK_01 , B3 ) ;
 130: LD_EXP 7
 134: PPUSH
 135: LD_STRING B3
 137: PPUSH
 138: CALL_OW 88
// Say ( OWChyba , B4 ) ;
 142: LD_EXP 6
 146: PPUSH
 147: LD_STRING B4
 149: PPUSH
 150: CALL_OW 88
// Say ( PULK_01 , B5 ) ;
 154: LD_EXP 7
 158: PPUSH
 159: LD_STRING B5
 161: PPUSH
 162: CALL_OW 88
// Say ( OWChyba , B6 ) ;
 166: LD_EXP 6
 170: PPUSH
 171: LD_STRING B6
 173: PPUSH
 174: CALL_OW 88
// Say ( PULK_01 , B7 ) ;
 178: LD_EXP 7
 182: PPUSH
 183: LD_STRING B7
 185: PPUSH
 186: CALL_OW 88
// Say ( OWChyba , B8 ) ;
 190: LD_EXP 6
 194: PPUSH
 195: LD_STRING B8
 197: PPUSH
 198: CALL_OW 88
// Say ( PULK_01 , B9 ) ;
 202: LD_EXP 7
 206: PPUSH
 207: LD_STRING B9
 209: PPUSH
 210: CALL_OW 88
// Say ( OWChyba , B10 ) ;
 214: LD_EXP 6
 218: PPUSH
 219: LD_STRING B10
 221: PPUSH
 222: CALL_OW 88
// Say ( PULK_01 , B11 ) ;
 226: LD_EXP 7
 230: PPUSH
 231: LD_STRING B11
 233: PPUSH
 234: CALL_OW 88
// Say ( OWChyba , B12 ) ;
 238: LD_EXP 6
 242: PPUSH
 243: LD_STRING B12
 245: PPUSH
 246: CALL_OW 88
// Say ( PULK_01 , B13 ) ;
 250: LD_EXP 7
 254: PPUSH
 255: LD_STRING B13
 257: PPUSH
 258: CALL_OW 88
// SaveCharacters ( PULK_01 , PULK_01 ) ;
 262: LD_EXP 7
 266: PPUSH
 267: LD_STRING PULK_01
 269: PPUSH
 270: CALL_OW 38
// SaveCharacters ( OWChyba , OWChyba ) ;
 274: LD_EXP 6
 278: PPUSH
 279: LD_STRING OWChyba
 281: PPUSH
 282: CALL_OW 38
// ChangeMap ( 06 , %_cont ) ;
 286: LD_INT 6
 288: PPUSH
 289: LD_STRING %_cont
 291: PPUSH
 292: CALL_OW 340
// end ; end_of_file
 296: END
// export comp_engs3 , comp_engs2 , AmericanPerson , Am1_Turret , Am2_Turret ; export function PrepareAmerican ; var am_turret , i , un , b , x1 , y1 , k , l , level , am_depot1 , comp_units , am_depot2 , am_fab , am_lab ; begin
 297: LD_INT 0
 299: PPUSH
 300: PPUSH
 301: PPUSH
 302: PPUSH
 303: PPUSH
 304: PPUSH
 305: PPUSH
 306: PPUSH
 307: PPUSH
 308: PPUSH
 309: PPUSH
 310: PPUSH
 311: PPUSH
 312: PPUSH
 313: PPUSH
// Am1_Turret := FilterUnitsInArea ( SIDE1 , [ [ f_side , 1 ] , [ f_btype , b_bunker ] ] ) ;
 314: LD_ADDR_EXP 4
 318: PUSH
 319: LD_INT 1
 321: PPUSH
 322: LD_INT 22
 324: PUSH
 325: LD_INT 1
 327: PUSH
 328: EMPTY
 329: LIST
 330: LIST
 331: PUSH
 332: LD_INT 30
 334: PUSH
 335: LD_INT 32
 337: PUSH
 338: EMPTY
 339: LIST
 340: LIST
 341: PUSH
 342: EMPTY
 343: LIST
 344: LIST
 345: PPUSH
 346: CALL_OW 70
 350: ST_TO_ADDR
// uc_side = 1 ;
 351: LD_ADDR_OWVAR 20
 355: PUSH
 356: LD_INT 1
 358: ST_TO_ADDR
// uc_nation = 1 ;
 359: LD_ADDR_OWVAR 21
 363: PUSH
 364: LD_INT 1
 366: ST_TO_ADDR
// hc_gallery =  ;
 367: LD_ADDR_OWVAR 33
 371: PUSH
 372: LD_STRING 
 374: ST_TO_ADDR
// hc_name =  ;
 375: LD_ADDR_OWVAR 26
 379: PUSH
 380: LD_STRING 
 382: ST_TO_ADDR
// for i in Am1_Turret do
 383: LD_ADDR_VAR 0 3
 387: PUSH
 388: LD_EXP 4
 392: PUSH
 393: FOR_IN
 394: IFFALSE 582
// begin if IsInUnit ( i ) = 0 then
 396: LD_VAR 0 3
 400: PPUSH
 401: CALL_OW 310
 405: PUSH
 406: LD_INT 0
 408: EQUAL
 409: IFFALSE 580
// begin Level = [ 3 , 2 , 1 ] [ Difficulty ] ;
 411: LD_ADDR_VAR 0 10
 415: PUSH
 416: LD_INT 3
 418: PUSH
 419: LD_INT 2
 421: PUSH
 422: LD_INT 1
 424: PUSH
 425: EMPTY
 426: LIST
 427: LIST
 428: LIST
 429: PUSH
 430: LD_OWVAR 67
 434: ARRAY
 435: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 436: LD_ADDR_OWVAR 29
 440: PUSH
 441: LD_INT 9
 443: PPUSH
 444: LD_INT 11
 446: PPUSH
 447: CALL_OW 12
 451: PUSH
 452: LD_INT 10
 454: PPUSH
 455: LD_INT 12
 457: PPUSH
 458: CALL_OW 12
 462: PUSH
 463: EMPTY
 464: LIST
 465: LIST
 466: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 1 , 3 ) , Rand ( 1 , 2 ) , Rand ( 1 , 2 ) ] ;
 467: LD_ADDR_OWVAR 31
 471: PUSH
 472: LD_VAR 0 10
 476: PUSH
 477: LD_INT 1
 479: PPUSH
 480: LD_INT 3
 482: PPUSH
 483: CALL_OW 12
 487: PUSH
 488: LD_INT 1
 490: PPUSH
 491: LD_INT 2
 493: PPUSH
 494: CALL_OW 12
 498: PUSH
 499: LD_INT 1
 501: PPUSH
 502: LD_INT 2
 504: PPUSH
 505: CALL_OW 12
 509: PUSH
 510: EMPTY
 511: LIST
 512: LIST
 513: LIST
 514: LIST
 515: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 516: LD_ADDR_OWVAR 27
 520: PUSH
 521: LD_INT 1
 523: PPUSH
 524: LD_INT 2
 526: PPUSH
 527: CALL_OW 12
 531: ST_TO_ADDR
// hc_class = 1 ;
 532: LD_ADDR_OWVAR 28
 536: PUSH
 537: LD_INT 1
 539: ST_TO_ADDR
// un := CreateHuman ;
 540: LD_ADDR_VAR 0 4
 544: PUSH
 545: CALL_OW 44
 549: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 550: LD_VAR 0 4
 554: PPUSH
 555: LD_VAR 0 3
 559: PPUSH
 560: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
 564: LD_ADDR_EXP 3
 568: PUSH
 569: LD_EXP 3
 573: PUSH
 574: LD_VAR 0 4
 578: ADD
 579: ST_TO_ADDR
// end ; end ;
 580: GO 393
 582: POP
 583: POP
// Am2_Turret := FilterUnitsInArea ( SIDE2 , [ [ f_side , 4 ] , [ f_btype , b_bunker ] ] ) ;
 584: LD_ADDR_EXP 5
 588: PUSH
 589: LD_INT 2
 591: PPUSH
 592: LD_INT 22
 594: PUSH
 595: LD_INT 4
 597: PUSH
 598: EMPTY
 599: LIST
 600: LIST
 601: PUSH
 602: LD_INT 30
 604: PUSH
 605: LD_INT 32
 607: PUSH
 608: EMPTY
 609: LIST
 610: LIST
 611: PUSH
 612: EMPTY
 613: LIST
 614: LIST
 615: PPUSH
 616: CALL_OW 70
 620: ST_TO_ADDR
// uc_side = 4 ;
 621: LD_ADDR_OWVAR 20
 625: PUSH
 626: LD_INT 4
 628: ST_TO_ADDR
// uc_nation = 1 ;
 629: LD_ADDR_OWVAR 21
 633: PUSH
 634: LD_INT 1
 636: ST_TO_ADDR
// hc_gallery =  ;
 637: LD_ADDR_OWVAR 33
 641: PUSH
 642: LD_STRING 
 644: ST_TO_ADDR
// hc_name =  ;
 645: LD_ADDR_OWVAR 26
 649: PUSH
 650: LD_STRING 
 652: ST_TO_ADDR
// for i in Am2_Turret do
 653: LD_ADDR_VAR 0 3
 657: PUSH
 658: LD_EXP 5
 662: PUSH
 663: FOR_IN
 664: IFFALSE 833
// begin if IsInUnit ( i ) = 0 then
 666: LD_VAR 0 3
 670: PPUSH
 671: CALL_OW 310
 675: PUSH
 676: LD_INT 0
 678: EQUAL
 679: IFFALSE 831
// begin hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 681: LD_ADDR_OWVAR 29
 685: PUSH
 686: LD_INT 9
 688: PPUSH
 689: LD_INT 11
 691: PPUSH
 692: CALL_OW 12
 696: PUSH
 697: LD_INT 10
 699: PPUSH
 700: LD_INT 12
 702: PPUSH
 703: CALL_OW 12
 707: PUSH
 708: EMPTY
 709: LIST
 710: LIST
 711: ST_TO_ADDR
// hc_skills = [ Rand ( 5 , 6 ) , Rand ( 1 , 3 ) , Rand ( 1 , 2 ) , Rand ( 1 , 2 ) ] ;
 712: LD_ADDR_OWVAR 31
 716: PUSH
 717: LD_INT 5
 719: PPUSH
 720: LD_INT 6
 722: PPUSH
 723: CALL_OW 12
 727: PUSH
 728: LD_INT 1
 730: PPUSH
 731: LD_INT 3
 733: PPUSH
 734: CALL_OW 12
 738: PUSH
 739: LD_INT 1
 741: PPUSH
 742: LD_INT 2
 744: PPUSH
 745: CALL_OW 12
 749: PUSH
 750: LD_INT 1
 752: PPUSH
 753: LD_INT 2
 755: PPUSH
 756: CALL_OW 12
 760: PUSH
 761: EMPTY
 762: LIST
 763: LIST
 764: LIST
 765: LIST
 766: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 767: LD_ADDR_OWVAR 27
 771: PUSH
 772: LD_INT 1
 774: PPUSH
 775: LD_INT 2
 777: PPUSH
 778: CALL_OW 12
 782: ST_TO_ADDR
// hc_class = 1 ;
 783: LD_ADDR_OWVAR 28
 787: PUSH
 788: LD_INT 1
 790: ST_TO_ADDR
// un := CreateHuman ;
 791: LD_ADDR_VAR 0 4
 795: PUSH
 796: CALL_OW 44
 800: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 801: LD_VAR 0 4
 805: PPUSH
 806: LD_VAR 0 3
 810: PPUSH
 811: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
 815: LD_ADDR_EXP 3
 819: PUSH
 820: LD_EXP 3
 824: PUSH
 825: LD_VAR 0 4
 829: ADD
 830: ST_TO_ADDR
// end ; end ;
 831: GO 663
 833: POP
 834: POP
// for i in fabryka1 do
 835: LD_ADDR_VAR 0 3
 839: PUSH
 840: LD_INT 375
 842: PUSH
 843: FOR_IN
 844: IFFALSE 1094
// begin l = 0 ;
 846: LD_ADDR_VAR 0 9
 850: PUSH
 851: LD_INT 0
 853: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
 854: LD_VAR 0 3
 858: PPUSH
 859: CALL_OW 310
 863: PUSH
 864: LD_INT 0
 866: EQUAL
 867: IFFALSE 1092
// begin Level = [ 5 , 5 , 5 ] [ Difficulty ] ;
 869: LD_ADDR_VAR 0 10
 873: PUSH
 874: LD_INT 5
 876: PUSH
 877: LD_INT 5
 879: PUSH
 880: LD_INT 5
 882: PUSH
 883: EMPTY
 884: LIST
 885: LIST
 886: LIST
 887: PUSH
 888: LD_OWVAR 67
 892: ARRAY
 893: ST_TO_ADDR
// repeat begin uc_side = 4 ;
 894: LD_ADDR_OWVAR 20
 898: PUSH
 899: LD_INT 4
 901: ST_TO_ADDR
// uc_nation = 1 ;
 902: LD_ADDR_OWVAR 21
 906: PUSH
 907: LD_INT 1
 909: ST_TO_ADDR
// hc_gallery =  ;
 910: LD_ADDR_OWVAR 33
 914: PUSH
 915: LD_STRING 
 917: ST_TO_ADDR
// hc_name =  ;
 918: LD_ADDR_OWVAR 26
 922: PUSH
 923: LD_STRING 
 925: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 926: LD_ADDR_OWVAR 29
 930: PUSH
 931: LD_INT 9
 933: PPUSH
 934: LD_INT 11
 936: PPUSH
 937: CALL_OW 12
 941: PUSH
 942: LD_INT 10
 944: PPUSH
 945: LD_INT 12
 947: PPUSH
 948: CALL_OW 12
 952: PUSH
 953: EMPTY
 954: LIST
 955: LIST
 956: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Level , Rand ( 0 , 1 ) ] ;
 957: LD_ADDR_OWVAR 31
 961: PUSH
 962: LD_INT 0
 964: PPUSH
 965: LD_INT 3
 967: PPUSH
 968: CALL_OW 12
 972: PUSH
 973: LD_INT 0
 975: PPUSH
 976: LD_INT 1
 978: PPUSH
 979: CALL_OW 12
 983: PUSH
 984: LD_VAR 0 10
 988: PUSH
 989: LD_INT 0
 991: PPUSH
 992: LD_INT 1
 994: PPUSH
 995: CALL_OW 12
 999: PUSH
1000: EMPTY
1001: LIST
1002: LIST
1003: LIST
1004: LIST
1005: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1006: LD_ADDR_OWVAR 27
1010: PUSH
1011: LD_INT 1
1013: PPUSH
1014: LD_INT 2
1016: PPUSH
1017: CALL_OW 12
1021: ST_TO_ADDR
// hc_class = 3 ;
1022: LD_ADDR_OWVAR 28
1026: PUSH
1027: LD_INT 3
1029: ST_TO_ADDR
// un = CreateHuman ;
1030: LD_ADDR_VAR 0 4
1034: PUSH
1035: CALL_OW 44
1039: ST_TO_ADDR
// PlaceHumanInUnit ( un , fabryka1 ) ;
1040: LD_VAR 0 4
1044: PPUSH
1045: LD_INT 375
1047: PPUSH
1048: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
1052: LD_ADDR_EXP 3
1056: PUSH
1057: LD_EXP 3
1061: PUSH
1062: LD_VAR 0 4
1066: ADD
1067: ST_TO_ADDR
// l = l + 1 ;
1068: LD_ADDR_VAR 0 9
1072: PUSH
1073: LD_VAR 0 9
1077: PUSH
1078: LD_INT 1
1080: PLUS
1081: ST_TO_ADDR
// end until l = 4 ;
1082: LD_VAR 0 9
1086: PUSH
1087: LD_INT 4
1089: EQUAL
1090: IFFALSE 894
// end ; end ;
1092: GO 843
1094: POP
1095: POP
// for i in lab1 do
1096: LD_ADDR_VAR 0 3
1100: PUSH
1101: LD_INT 278
1103: PUSH
1104: FOR_IN
1105: IFFALSE 1355
// begin l = 0 ;
1107: LD_ADDR_VAR 0 9
1111: PUSH
1112: LD_INT 0
1114: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1115: LD_VAR 0 3
1119: PPUSH
1120: CALL_OW 310
1124: PUSH
1125: LD_INT 0
1127: EQUAL
1128: IFFALSE 1353
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
1130: LD_ADDR_VAR 0 10
1134: PUSH
1135: LD_INT 4
1137: PUSH
1138: LD_INT 4
1140: PUSH
1141: LD_INT 4
1143: PUSH
1144: EMPTY
1145: LIST
1146: LIST
1147: LIST
1148: PUSH
1149: LD_OWVAR 67
1153: ARRAY
1154: ST_TO_ADDR
// repeat begin uc_side = 1 ;
1155: LD_ADDR_OWVAR 20
1159: PUSH
1160: LD_INT 1
1162: ST_TO_ADDR
// uc_nation = 1 ;
1163: LD_ADDR_OWVAR 21
1167: PUSH
1168: LD_INT 1
1170: ST_TO_ADDR
// hc_gallery =  ;
1171: LD_ADDR_OWVAR 33
1175: PUSH
1176: LD_STRING 
1178: ST_TO_ADDR
// hc_name =  ;
1179: LD_ADDR_OWVAR 26
1183: PUSH
1184: LD_STRING 
1186: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1187: LD_ADDR_OWVAR 29
1191: PUSH
1192: LD_INT 9
1194: PPUSH
1195: LD_INT 11
1197: PPUSH
1198: CALL_OW 12
1202: PUSH
1203: LD_INT 10
1205: PPUSH
1206: LD_INT 12
1208: PPUSH
1209: CALL_OW 12
1213: PUSH
1214: EMPTY
1215: LIST
1216: LIST
1217: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Rand ( 1 , 2 ) , Level ] ;
1218: LD_ADDR_OWVAR 31
1222: PUSH
1223: LD_INT 0
1225: PPUSH
1226: LD_INT 3
1228: PPUSH
1229: CALL_OW 12
1233: PUSH
1234: LD_INT 0
1236: PPUSH
1237: LD_INT 1
1239: PPUSH
1240: CALL_OW 12
1244: PUSH
1245: LD_INT 1
1247: PPUSH
1248: LD_INT 2
1250: PPUSH
1251: CALL_OW 12
1255: PUSH
1256: LD_VAR 0 10
1260: PUSH
1261: EMPTY
1262: LIST
1263: LIST
1264: LIST
1265: LIST
1266: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1267: LD_ADDR_OWVAR 27
1271: PUSH
1272: LD_INT 1
1274: PPUSH
1275: LD_INT 2
1277: PPUSH
1278: CALL_OW 12
1282: ST_TO_ADDR
// hc_class = 4 ;
1283: LD_ADDR_OWVAR 28
1287: PUSH
1288: LD_INT 4
1290: ST_TO_ADDR
// un = CreateHuman ;
1291: LD_ADDR_VAR 0 4
1295: PUSH
1296: CALL_OW 44
1300: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab1 ) ;
1301: LD_VAR 0 4
1305: PPUSH
1306: LD_INT 278
1308: PPUSH
1309: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
1313: LD_ADDR_EXP 3
1317: PUSH
1318: LD_EXP 3
1322: PUSH
1323: LD_VAR 0 4
1327: ADD
1328: ST_TO_ADDR
// l = l + 1 ;
1329: LD_ADDR_VAR 0 9
1333: PUSH
1334: LD_VAR 0 9
1338: PUSH
1339: LD_INT 1
1341: PLUS
1342: ST_TO_ADDR
// end until l = 3 ;
1343: LD_VAR 0 9
1347: PUSH
1348: LD_INT 3
1350: EQUAL
1351: IFFALSE 1155
// end ; end ;
1353: GO 1104
1355: POP
1356: POP
// for i in lab2 do
1357: LD_ADDR_VAR 0 3
1361: PUSH
1362: LD_INT 283
1364: PUSH
1365: FOR_IN
1366: IFFALSE 1616
// begin ; l = 0 ;
1368: LD_ADDR_VAR 0 9
1372: PUSH
1373: LD_INT 0
1375: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1376: LD_VAR 0 3
1380: PPUSH
1381: CALL_OW 310
1385: PUSH
1386: LD_INT 0
1388: EQUAL
1389: IFFALSE 1614
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
1391: LD_ADDR_VAR 0 10
1395: PUSH
1396: LD_INT 4
1398: PUSH
1399: LD_INT 4
1401: PUSH
1402: LD_INT 4
1404: PUSH
1405: EMPTY
1406: LIST
1407: LIST
1408: LIST
1409: PUSH
1410: LD_OWVAR 67
1414: ARRAY
1415: ST_TO_ADDR
// repeat begin uc_side = 1 ;
1416: LD_ADDR_OWVAR 20
1420: PUSH
1421: LD_INT 1
1423: ST_TO_ADDR
// uc_nation = 1 ;
1424: LD_ADDR_OWVAR 21
1428: PUSH
1429: LD_INT 1
1431: ST_TO_ADDR
// hc_gallery =  ;
1432: LD_ADDR_OWVAR 33
1436: PUSH
1437: LD_STRING 
1439: ST_TO_ADDR
// hc_name =  ;
1440: LD_ADDR_OWVAR 26
1444: PUSH
1445: LD_STRING 
1447: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1448: LD_ADDR_OWVAR 29
1452: PUSH
1453: LD_INT 9
1455: PPUSH
1456: LD_INT 11
1458: PPUSH
1459: CALL_OW 12
1463: PUSH
1464: LD_INT 10
1466: PPUSH
1467: LD_INT 12
1469: PPUSH
1470: CALL_OW 12
1474: PUSH
1475: EMPTY
1476: LIST
1477: LIST
1478: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Level ] ;
1479: LD_ADDR_OWVAR 31
1483: PUSH
1484: LD_INT 0
1486: PPUSH
1487: LD_INT 3
1489: PPUSH
1490: CALL_OW 12
1494: PUSH
1495: LD_INT 0
1497: PPUSH
1498: LD_INT 1
1500: PPUSH
1501: CALL_OW 12
1505: PUSH
1506: LD_INT 0
1508: PPUSH
1509: LD_INT 2
1511: PPUSH
1512: CALL_OW 12
1516: PUSH
1517: LD_VAR 0 10
1521: PUSH
1522: EMPTY
1523: LIST
1524: LIST
1525: LIST
1526: LIST
1527: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1528: LD_ADDR_OWVAR 27
1532: PUSH
1533: LD_INT 1
1535: PPUSH
1536: LD_INT 2
1538: PPUSH
1539: CALL_OW 12
1543: ST_TO_ADDR
// hc_class = 4 ;
1544: LD_ADDR_OWVAR 28
1548: PUSH
1549: LD_INT 4
1551: ST_TO_ADDR
// un = CreateHuman ;
1552: LD_ADDR_VAR 0 4
1556: PUSH
1557: CALL_OW 44
1561: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab2 ) ;
1562: LD_VAR 0 4
1566: PPUSH
1567: LD_INT 283
1569: PPUSH
1570: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
1574: LD_ADDR_EXP 3
1578: PUSH
1579: LD_EXP 3
1583: PUSH
1584: LD_VAR 0 4
1588: ADD
1589: ST_TO_ADDR
// l = l + 1 ;
1590: LD_ADDR_VAR 0 9
1594: PUSH
1595: LD_VAR 0 9
1599: PUSH
1600: LD_INT 1
1602: PLUS
1603: ST_TO_ADDR
// end until l = 1 ;
1604: LD_VAR 0 9
1608: PUSH
1609: LD_INT 1
1611: EQUAL
1612: IFFALSE 1416
// end ; end ;
1614: GO 1365
1616: POP
1617: POP
// for i in lab3 do
1618: LD_ADDR_VAR 0 3
1622: PUSH
1623: LD_INT 381
1625: PUSH
1626: FOR_IN
1627: IFFALSE 1877
// begin l = 0 ;
1629: LD_ADDR_VAR 0 9
1633: PUSH
1634: LD_INT 0
1636: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1637: LD_VAR 0 3
1641: PPUSH
1642: CALL_OW 310
1646: PUSH
1647: LD_INT 0
1649: EQUAL
1650: IFFALSE 1875
// begin Level = [ 3 , 3 , 3 ] [ Difficulty ] ;
1652: LD_ADDR_VAR 0 10
1656: PUSH
1657: LD_INT 3
1659: PUSH
1660: LD_INT 3
1662: PUSH
1663: LD_INT 3
1665: PUSH
1666: EMPTY
1667: LIST
1668: LIST
1669: LIST
1670: PUSH
1671: LD_OWVAR 67
1675: ARRAY
1676: ST_TO_ADDR
// repeat begin uc_side = 4 ;
1677: LD_ADDR_OWVAR 20
1681: PUSH
1682: LD_INT 4
1684: ST_TO_ADDR
// uc_nation = 1 ;
1685: LD_ADDR_OWVAR 21
1689: PUSH
1690: LD_INT 1
1692: ST_TO_ADDR
// hc_gallery =  ;
1693: LD_ADDR_OWVAR 33
1697: PUSH
1698: LD_STRING 
1700: ST_TO_ADDR
// hc_name =  ;
1701: LD_ADDR_OWVAR 26
1705: PUSH
1706: LD_STRING 
1708: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1709: LD_ADDR_OWVAR 29
1713: PUSH
1714: LD_INT 9
1716: PPUSH
1717: LD_INT 11
1719: PPUSH
1720: CALL_OW 12
1724: PUSH
1725: LD_INT 10
1727: PPUSH
1728: LD_INT 12
1730: PPUSH
1731: CALL_OW 12
1735: PUSH
1736: EMPTY
1737: LIST
1738: LIST
1739: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Level ] ;
1740: LD_ADDR_OWVAR 31
1744: PUSH
1745: LD_INT 0
1747: PPUSH
1748: LD_INT 3
1750: PPUSH
1751: CALL_OW 12
1755: PUSH
1756: LD_INT 0
1758: PPUSH
1759: LD_INT 1
1761: PPUSH
1762: CALL_OW 12
1766: PUSH
1767: LD_INT 0
1769: PPUSH
1770: LD_INT 2
1772: PPUSH
1773: CALL_OW 12
1777: PUSH
1778: LD_VAR 0 10
1782: PUSH
1783: EMPTY
1784: LIST
1785: LIST
1786: LIST
1787: LIST
1788: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1789: LD_ADDR_OWVAR 27
1793: PUSH
1794: LD_INT 1
1796: PPUSH
1797: LD_INT 2
1799: PPUSH
1800: CALL_OW 12
1804: ST_TO_ADDR
// hc_class = 4 ;
1805: LD_ADDR_OWVAR 28
1809: PUSH
1810: LD_INT 4
1812: ST_TO_ADDR
// un = CreateHuman ;
1813: LD_ADDR_VAR 0 4
1817: PUSH
1818: CALL_OW 44
1822: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab3 ) ;
1823: LD_VAR 0 4
1827: PPUSH
1828: LD_INT 381
1830: PPUSH
1831: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
1835: LD_ADDR_EXP 3
1839: PUSH
1840: LD_EXP 3
1844: PUSH
1845: LD_VAR 0 4
1849: ADD
1850: ST_TO_ADDR
// l = l + 1 ;
1851: LD_ADDR_VAR 0 9
1855: PUSH
1856: LD_VAR 0 9
1860: PUSH
1861: LD_INT 1
1863: PLUS
1864: ST_TO_ADDR
// end until l = 2 ;
1865: LD_VAR 0 9
1869: PUSH
1870: LD_INT 2
1872: EQUAL
1873: IFFALSE 1677
// end ; end ;
1875: GO 1626
1877: POP
1878: POP
// for i in lab4 do
1879: LD_ADDR_VAR 0 3
1883: PUSH
1884: LD_INT 388
1886: PUSH
1887: FOR_IN
1888: IFFALSE 2138
// begin l = 0 ;
1890: LD_ADDR_VAR 0 9
1894: PUSH
1895: LD_INT 0
1897: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1898: LD_VAR 0 3
1902: PPUSH
1903: CALL_OW 310
1907: PUSH
1908: LD_INT 0
1910: EQUAL
1911: IFFALSE 2136
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
1913: LD_ADDR_VAR 0 10
1917: PUSH
1918: LD_INT 4
1920: PUSH
1921: LD_INT 4
1923: PUSH
1924: LD_INT 4
1926: PUSH
1927: EMPTY
1928: LIST
1929: LIST
1930: LIST
1931: PUSH
1932: LD_OWVAR 67
1936: ARRAY
1937: ST_TO_ADDR
// repeat begin uc_side = 4 ;
1938: LD_ADDR_OWVAR 20
1942: PUSH
1943: LD_INT 4
1945: ST_TO_ADDR
// uc_nation = 1 ;
1946: LD_ADDR_OWVAR 21
1950: PUSH
1951: LD_INT 1
1953: ST_TO_ADDR
// hc_gallery =  ;
1954: LD_ADDR_OWVAR 33
1958: PUSH
1959: LD_STRING 
1961: ST_TO_ADDR
// hc_name =  ;
1962: LD_ADDR_OWVAR 26
1966: PUSH
1967: LD_STRING 
1969: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1970: LD_ADDR_OWVAR 29
1974: PUSH
1975: LD_INT 9
1977: PPUSH
1978: LD_INT 11
1980: PPUSH
1981: CALL_OW 12
1985: PUSH
1986: LD_INT 10
1988: PPUSH
1989: LD_INT 12
1991: PPUSH
1992: CALL_OW 12
1996: PUSH
1997: EMPTY
1998: LIST
1999: LIST
2000: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Level ] ;
2001: LD_ADDR_OWVAR 31
2005: PUSH
2006: LD_INT 0
2008: PPUSH
2009: LD_INT 3
2011: PPUSH
2012: CALL_OW 12
2016: PUSH
2017: LD_INT 0
2019: PPUSH
2020: LD_INT 1
2022: PPUSH
2023: CALL_OW 12
2027: PUSH
2028: LD_INT 0
2030: PPUSH
2031: LD_INT 2
2033: PPUSH
2034: CALL_OW 12
2038: PUSH
2039: LD_VAR 0 10
2043: PUSH
2044: EMPTY
2045: LIST
2046: LIST
2047: LIST
2048: LIST
2049: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2050: LD_ADDR_OWVAR 27
2054: PUSH
2055: LD_INT 1
2057: PPUSH
2058: LD_INT 2
2060: PPUSH
2061: CALL_OW 12
2065: ST_TO_ADDR
// hc_class = 4 ;
2066: LD_ADDR_OWVAR 28
2070: PUSH
2071: LD_INT 4
2073: ST_TO_ADDR
// un = CreateHuman ;
2074: LD_ADDR_VAR 0 4
2078: PUSH
2079: CALL_OW 44
2083: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab4 ) ;
2084: LD_VAR 0 4
2088: PPUSH
2089: LD_INT 388
2091: PPUSH
2092: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2096: LD_ADDR_EXP 3
2100: PUSH
2101: LD_EXP 3
2105: PUSH
2106: LD_VAR 0 4
2110: ADD
2111: ST_TO_ADDR
// l = l + 1 ;
2112: LD_ADDR_VAR 0 9
2116: PUSH
2117: LD_VAR 0 9
2121: PUSH
2122: LD_INT 1
2124: PLUS
2125: ST_TO_ADDR
// end until l = 2 ;
2126: LD_VAR 0 9
2130: PUSH
2131: LD_INT 2
2133: EQUAL
2134: IFFALSE 1938
// end ; end ;
2136: GO 1887
2138: POP
2139: POP
// for i in kosze1 do
2140: LD_ADDR_VAR 0 3
2144: PUSH
2145: LD_INT 306
2147: PUSH
2148: FOR_IN
2149: IFFALSE 2399
// begin l = 0 ;
2151: LD_ADDR_VAR 0 9
2155: PUSH
2156: LD_INT 0
2158: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2159: LD_VAR 0 3
2163: PPUSH
2164: CALL_OW 310
2168: PUSH
2169: LD_INT 0
2171: EQUAL
2172: IFFALSE 2397
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2174: LD_ADDR_VAR 0 10
2178: PUSH
2179: LD_INT 4
2181: PUSH
2182: LD_INT 4
2184: PUSH
2185: LD_INT 4
2187: PUSH
2188: EMPTY
2189: LIST
2190: LIST
2191: LIST
2192: PUSH
2193: LD_OWVAR 67
2197: ARRAY
2198: ST_TO_ADDR
// repeat begin uc_side = 4 ;
2199: LD_ADDR_OWVAR 20
2203: PUSH
2204: LD_INT 4
2206: ST_TO_ADDR
// uc_nation = 1 ;
2207: LD_ADDR_OWVAR 21
2211: PUSH
2212: LD_INT 1
2214: ST_TO_ADDR
// hc_gallery =  ;
2215: LD_ADDR_OWVAR 33
2219: PUSH
2220: LD_STRING 
2222: ST_TO_ADDR
// hc_name =  ;
2223: LD_ADDR_OWVAR 26
2227: PUSH
2228: LD_STRING 
2230: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2231: LD_ADDR_OWVAR 29
2235: PUSH
2236: LD_INT 9
2238: PPUSH
2239: LD_INT 11
2241: PPUSH
2242: CALL_OW 12
2246: PUSH
2247: LD_INT 10
2249: PPUSH
2250: LD_INT 12
2252: PPUSH
2253: CALL_OW 12
2257: PUSH
2258: EMPTY
2259: LIST
2260: LIST
2261: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
2262: LD_ADDR_OWVAR 31
2266: PUSH
2267: LD_VAR 0 10
2271: PUSH
2272: LD_INT 0
2274: PPUSH
2275: LD_INT 1
2277: PPUSH
2278: CALL_OW 12
2282: PUSH
2283: LD_INT 0
2285: PPUSH
2286: LD_INT 2
2288: PPUSH
2289: CALL_OW 12
2293: PUSH
2294: LD_INT 0
2296: PPUSH
2297: LD_INT 1
2299: PPUSH
2300: CALL_OW 12
2304: PUSH
2305: EMPTY
2306: LIST
2307: LIST
2308: LIST
2309: LIST
2310: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2311: LD_ADDR_OWVAR 27
2315: PUSH
2316: LD_INT 1
2318: PPUSH
2319: LD_INT 2
2321: PPUSH
2322: CALL_OW 12
2326: ST_TO_ADDR
// hc_class = 1 ;
2327: LD_ADDR_OWVAR 28
2331: PUSH
2332: LD_INT 1
2334: ST_TO_ADDR
// un = CreateHuman ;
2335: LD_ADDR_VAR 0 4
2339: PUSH
2340: CALL_OW 44
2344: ST_TO_ADDR
// PlaceHumanInUnit ( un , kosze1 ) ;
2345: LD_VAR 0 4
2349: PPUSH
2350: LD_INT 306
2352: PPUSH
2353: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2357: LD_ADDR_EXP 3
2361: PUSH
2362: LD_EXP 3
2366: PUSH
2367: LD_VAR 0 4
2371: ADD
2372: ST_TO_ADDR
// l = l + 1 ;
2373: LD_ADDR_VAR 0 9
2377: PUSH
2378: LD_VAR 0 9
2382: PUSH
2383: LD_INT 1
2385: PLUS
2386: ST_TO_ADDR
// end until l = 3 ;
2387: LD_VAR 0 9
2391: PUSH
2392: LD_INT 3
2394: EQUAL
2395: IFFALSE 2199
// end ; end ;
2397: GO 2148
2399: POP
2400: POP
// for i in kosze2 do
2401: LD_ADDR_VAR 0 3
2405: PUSH
2406: LD_INT 270
2408: PUSH
2409: FOR_IN
2410: IFFALSE 2660
// begin l = 0 ;
2412: LD_ADDR_VAR 0 9
2416: PUSH
2417: LD_INT 0
2419: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2420: LD_VAR 0 3
2424: PPUSH
2425: CALL_OW 310
2429: PUSH
2430: LD_INT 0
2432: EQUAL
2433: IFFALSE 2658
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2435: LD_ADDR_VAR 0 10
2439: PUSH
2440: LD_INT 4
2442: PUSH
2443: LD_INT 4
2445: PUSH
2446: LD_INT 4
2448: PUSH
2449: EMPTY
2450: LIST
2451: LIST
2452: LIST
2453: PUSH
2454: LD_OWVAR 67
2458: ARRAY
2459: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2460: LD_ADDR_OWVAR 20
2464: PUSH
2465: LD_INT 1
2467: ST_TO_ADDR
// uc_nation = 1 ;
2468: LD_ADDR_OWVAR 21
2472: PUSH
2473: LD_INT 1
2475: ST_TO_ADDR
// hc_gallery =  ;
2476: LD_ADDR_OWVAR 33
2480: PUSH
2481: LD_STRING 
2483: ST_TO_ADDR
// hc_name =  ;
2484: LD_ADDR_OWVAR 26
2488: PUSH
2489: LD_STRING 
2491: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2492: LD_ADDR_OWVAR 29
2496: PUSH
2497: LD_INT 9
2499: PPUSH
2500: LD_INT 11
2502: PPUSH
2503: CALL_OW 12
2507: PUSH
2508: LD_INT 10
2510: PPUSH
2511: LD_INT 12
2513: PPUSH
2514: CALL_OW 12
2518: PUSH
2519: EMPTY
2520: LIST
2521: LIST
2522: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 1 ) , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
2523: LD_ADDR_OWVAR 31
2527: PUSH
2528: LD_VAR 0 10
2532: PUSH
2533: LD_INT 0
2535: PPUSH
2536: LD_INT 1
2538: PPUSH
2539: CALL_OW 12
2543: PUSH
2544: LD_INT 0
2546: PPUSH
2547: LD_INT 2
2549: PPUSH
2550: CALL_OW 12
2554: PUSH
2555: LD_INT 0
2557: PPUSH
2558: LD_INT 1
2560: PPUSH
2561: CALL_OW 12
2565: PUSH
2566: EMPTY
2567: LIST
2568: LIST
2569: LIST
2570: LIST
2571: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2572: LD_ADDR_OWVAR 27
2576: PUSH
2577: LD_INT 1
2579: PPUSH
2580: LD_INT 2
2582: PPUSH
2583: CALL_OW 12
2587: ST_TO_ADDR
// hc_class = 1 ;
2588: LD_ADDR_OWVAR 28
2592: PUSH
2593: LD_INT 1
2595: ST_TO_ADDR
// un = CreateHuman ;
2596: LD_ADDR_VAR 0 4
2600: PUSH
2601: CALL_OW 44
2605: ST_TO_ADDR
// PlaceHumanInUnit ( un , kosze2 ) ;
2606: LD_VAR 0 4
2610: PPUSH
2611: LD_INT 270
2613: PPUSH
2614: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2618: LD_ADDR_EXP 3
2622: PUSH
2623: LD_EXP 3
2627: PUSH
2628: LD_VAR 0 4
2632: ADD
2633: ST_TO_ADDR
// l = l + 1 ;
2634: LD_ADDR_VAR 0 9
2638: PUSH
2639: LD_VAR 0 9
2643: PUSH
2644: LD_INT 1
2646: PLUS
2647: ST_TO_ADDR
// end until l = 3 ;
2648: LD_VAR 0 9
2652: PUSH
2653: LD_INT 3
2655: EQUAL
2656: IFFALSE 2460
// end ; end ;
2658: GO 2409
2660: POP
2661: POP
// for i in sklad1 do
2662: LD_ADDR_VAR 0 3
2666: PUSH
2667: LD_INT 305
2669: PUSH
2670: FOR_IN
2671: IFFALSE 2921
// begin l = 0 ;
2673: LD_ADDR_VAR 0 9
2677: PUSH
2678: LD_INT 0
2680: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2681: LD_VAR 0 3
2685: PPUSH
2686: CALL_OW 310
2690: PUSH
2691: LD_INT 0
2693: EQUAL
2694: IFFALSE 2919
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2696: LD_ADDR_VAR 0 10
2700: PUSH
2701: LD_INT 4
2703: PUSH
2704: LD_INT 4
2706: PUSH
2707: LD_INT 4
2709: PUSH
2710: EMPTY
2711: LIST
2712: LIST
2713: LIST
2714: PUSH
2715: LD_OWVAR 67
2719: ARRAY
2720: ST_TO_ADDR
// repeat begin uc_side = 4 ;
2721: LD_ADDR_OWVAR 20
2725: PUSH
2726: LD_INT 4
2728: ST_TO_ADDR
// uc_nation = 1 ;
2729: LD_ADDR_OWVAR 21
2733: PUSH
2734: LD_INT 1
2736: ST_TO_ADDR
// hc_gallery =  ;
2737: LD_ADDR_OWVAR 33
2741: PUSH
2742: LD_STRING 
2744: ST_TO_ADDR
// hc_name =  ;
2745: LD_ADDR_OWVAR 26
2749: PUSH
2750: LD_STRING 
2752: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2753: LD_ADDR_OWVAR 29
2757: PUSH
2758: LD_INT 9
2760: PPUSH
2761: LD_INT 11
2763: PPUSH
2764: CALL_OW 12
2768: PUSH
2769: LD_INT 10
2771: PPUSH
2772: LD_INT 12
2774: PPUSH
2775: CALL_OW 12
2779: PUSH
2780: EMPTY
2781: LIST
2782: LIST
2783: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Level , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
2784: LD_ADDR_OWVAR 31
2788: PUSH
2789: LD_INT 0
2791: PPUSH
2792: LD_INT 2
2794: PPUSH
2795: CALL_OW 12
2799: PUSH
2800: LD_VAR 0 10
2804: PUSH
2805: LD_INT 0
2807: PPUSH
2808: LD_INT 2
2810: PPUSH
2811: CALL_OW 12
2815: PUSH
2816: LD_INT 0
2818: PPUSH
2819: LD_INT 1
2821: PPUSH
2822: CALL_OW 12
2826: PUSH
2827: EMPTY
2828: LIST
2829: LIST
2830: LIST
2831: LIST
2832: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2833: LD_ADDR_OWVAR 27
2837: PUSH
2838: LD_INT 1
2840: PPUSH
2841: LD_INT 2
2843: PPUSH
2844: CALL_OW 12
2848: ST_TO_ADDR
// hc_class = 2 ;
2849: LD_ADDR_OWVAR 28
2853: PUSH
2854: LD_INT 2
2856: ST_TO_ADDR
// un = CreateHuman ;
2857: LD_ADDR_VAR 0 4
2861: PUSH
2862: CALL_OW 44
2866: ST_TO_ADDR
// PlaceHumanInUnit ( un , sklad1 ) ;
2867: LD_VAR 0 4
2871: PPUSH
2872: LD_INT 305
2874: PPUSH
2875: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2879: LD_ADDR_EXP 3
2883: PUSH
2884: LD_EXP 3
2888: PUSH
2889: LD_VAR 0 4
2893: ADD
2894: ST_TO_ADDR
// l = l + 1 ;
2895: LD_ADDR_VAR 0 9
2899: PUSH
2900: LD_VAR 0 9
2904: PUSH
2905: LD_INT 1
2907: PLUS
2908: ST_TO_ADDR
// end until l = 2 ;
2909: LD_VAR 0 9
2913: PUSH
2914: LD_INT 2
2916: EQUAL
2917: IFFALSE 2721
// end ; end ;
2919: GO 2670
2921: POP
2922: POP
// for i in sklad2 do
2923: LD_ADDR_VAR 0 3
2927: PUSH
2928: LD_INT 218
2930: PUSH
2931: FOR_IN
2932: IFFALSE 3182
// begin l = 0 ;
2934: LD_ADDR_VAR 0 9
2938: PUSH
2939: LD_INT 0
2941: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2942: LD_VAR 0 3
2946: PPUSH
2947: CALL_OW 310
2951: PUSH
2952: LD_INT 0
2954: EQUAL
2955: IFFALSE 3180
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2957: LD_ADDR_VAR 0 10
2961: PUSH
2962: LD_INT 4
2964: PUSH
2965: LD_INT 4
2967: PUSH
2968: LD_INT 4
2970: PUSH
2971: EMPTY
2972: LIST
2973: LIST
2974: LIST
2975: PUSH
2976: LD_OWVAR 67
2980: ARRAY
2981: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2982: LD_ADDR_OWVAR 20
2986: PUSH
2987: LD_INT 1
2989: ST_TO_ADDR
// uc_nation = 1 ;
2990: LD_ADDR_OWVAR 21
2994: PUSH
2995: LD_INT 1
2997: ST_TO_ADDR
// hc_gallery =  ;
2998: LD_ADDR_OWVAR 33
3002: PUSH
3003: LD_STRING 
3005: ST_TO_ADDR
// hc_name =  ;
3006: LD_ADDR_OWVAR 26
3010: PUSH
3011: LD_STRING 
3013: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3014: LD_ADDR_OWVAR 29
3018: PUSH
3019: LD_INT 9
3021: PPUSH
3022: LD_INT 11
3024: PPUSH
3025: CALL_OW 12
3029: PUSH
3030: LD_INT 10
3032: PPUSH
3033: LD_INT 12
3035: PPUSH
3036: CALL_OW 12
3040: PUSH
3041: EMPTY
3042: LIST
3043: LIST
3044: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 1 ) , Level , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
3045: LD_ADDR_OWVAR 31
3049: PUSH
3050: LD_INT 0
3052: PPUSH
3053: LD_INT 1
3055: PPUSH
3056: CALL_OW 12
3060: PUSH
3061: LD_VAR 0 10
3065: PUSH
3066: LD_INT 0
3068: PPUSH
3069: LD_INT 2
3071: PPUSH
3072: CALL_OW 12
3076: PUSH
3077: LD_INT 0
3079: PPUSH
3080: LD_INT 1
3082: PPUSH
3083: CALL_OW 12
3087: PUSH
3088: EMPTY
3089: LIST
3090: LIST
3091: LIST
3092: LIST
3093: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3094: LD_ADDR_OWVAR 27
3098: PUSH
3099: LD_INT 1
3101: PPUSH
3102: LD_INT 2
3104: PPUSH
3105: CALL_OW 12
3109: ST_TO_ADDR
// hc_class = 2 ;
3110: LD_ADDR_OWVAR 28
3114: PUSH
3115: LD_INT 2
3117: ST_TO_ADDR
// un = CreateHuman ;
3118: LD_ADDR_VAR 0 4
3122: PUSH
3123: CALL_OW 44
3127: ST_TO_ADDR
// PlaceHumanInUnit ( un , sklad2 ) ;
3128: LD_VAR 0 4
3132: PPUSH
3133: LD_INT 218
3135: PPUSH
3136: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
3140: LD_ADDR_EXP 3
3144: PUSH
3145: LD_EXP 3
3149: PUSH
3150: LD_VAR 0 4
3154: ADD
3155: ST_TO_ADDR
// l = l + 1 ;
3156: LD_ADDR_VAR 0 9
3160: PUSH
3161: LD_VAR 0 9
3165: PUSH
3166: LD_INT 1
3168: PLUS
3169: ST_TO_ADDR
// end until l = 2 ;
3170: LD_VAR 0 9
3174: PUSH
3175: LD_INT 2
3177: EQUAL
3178: IFFALSE 2982
// end ; end ;
3180: GO 2931
3182: POP
3183: POP
// end ; end_of_file
3184: LD_VAR 0 1
3188: RET
// export OWChyba , PULK_01 ; export function PrepareHero1 ; begin
3189: LD_INT 0
3191: PPUSH
// uc_side = 4 ;
3192: LD_ADDR_OWVAR 20
3196: PUSH
3197: LD_INT 4
3199: ST_TO_ADDR
// uc_nation = 1 ;
3200: LD_ADDR_OWVAR 21
3204: PUSH
3205: LD_INT 1
3207: ST_TO_ADDR
// OWCHyba := CreateCharacter ( OWChyba ) ;
3208: LD_ADDR_EXP 6
3212: PUSH
3213: LD_STRING OWChyba
3215: PPUSH
3216: CALL_OW 34
3220: ST_TO_ADDR
// PlaceHumanInUnit ( OWChyba , sklad1 ) ;
3221: LD_EXP 6
3225: PPUSH
3226: LD_INT 305
3228: PPUSH
3229: CALL_OW 52
// uc_side = 1 ;
3233: LD_ADDR_OWVAR 20
3237: PUSH
3238: LD_INT 1
3240: ST_TO_ADDR
// uc_nation = 1 ;
3241: LD_ADDR_OWVAR 21
3245: PUSH
3246: LD_INT 1
3248: ST_TO_ADDR
// PULK_01 := CreateCharacter ( PULK_01 ) ;
3249: LD_ADDR_EXP 7
3253: PUSH
3254: LD_STRING PULK_01
3256: PPUSH
3257: CALL_OW 34
3261: ST_TO_ADDR
// PlaceUnitArea ( PULK_01 , PULKOWNIK , false ) ;
3262: LD_EXP 7
3266: PPUSH
3267: LD_INT 3
3269: PPUSH
3270: LD_INT 0
3272: PPUSH
3273: CALL_OW 49
// end ;
3277: LD_VAR 0 1
3281: RET
